package com.qumitech.visualnovel.datasource.console;

import com.qumitech.visualnovel.model.dao.console.AccountRegisterStatistics;
import com.qumitech.visualnovel.pubdef.dto.accountstatistic.AccountStatisticDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AccountRegisterStatisticsMapper {
    int deleteByPrimaryKey(Long id);

    int insert(AccountRegisterStatistics record);

    int insertSelective(AccountRegisterStatistics record);

    AccountRegisterStatistics selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(AccountRegisterStatistics record);

    int updateByPrimaryKey(AccountRegisterStatistics record);


    List <AccountStatisticDTO> getLine(@Param("type") String type,
                                       @Param("channel") String channel,
                                       @Param("version") String version,
                                       @Param("system") String system,
                                       @Param("gameType") String gameType,
                                       @Param("appName") String appName,
                                       @Param("startTime") String startTime,
                                       @Param("endTime") String endTime,
                                       @Param("countColumn") String countColumn,
                                       @Param("gender") Integer gender);

    List <AccountRegisterStatistics> getList(@Param("channel") String channel,
                                             @Param("version") String version,
                                             @Param("system") String system,
                                             @Param("gameType") String gameType,
                                             @Param("appName") String appName,
                                             @Param("startTime") String startTime,
                                             @Param("endTime") String endTime,
                                             @Param("offset") Integer offset,
                                             @Param("limit") Integer limit,
                                             @Param("orderType") String orderType,
                                             @Param("orderBy") String orderBy,
                                             @Param("countColumn") String countColumn);

    Integer getCount(@Param("channel") String channel,
                    @Param("version") String version,
                     @Param("system") String system,
                    @Param("gameType") String gameType,
                    @Param("appName") String appName,
                    @Param("startTime") String startTime,
                    @Param("endTime") String endTime);

    Integer getDashboardRegNum(@Param("system") String system);
}